Форум dkLab и Denwer
Здесь общаются Web-разработчики.
Генеральный спонсор:
Хостинг «Джино»

ВОПРОСИЩЕ: Как узнать порядковый номер выводимой записи относительно одного поля (Серж.Никитин)
Author Message
Серж.Никитин
Участник форума



Joined: 09 Aug 2005
Posts: 29
Карма: -2
   поощрить/наказать

Location: Челябинск - Тамбов

PostPosted: Wed Apr 05, 2006 4:30 pm (написано за 12 минут 41 секунду)
   Post subject: ВОПРОСИЩЕ: Как узнать порядковый номер выводимой записи относительно одного поля
Reply with quote

Объясню на примере.
Есть таблица, например `sites`, примерно с таким содержимым:
Code (any language): скопировать код в буфер обмена
Допустим, я выбираю определенную запись через SQL:
Code (SQL): скопировать код в буфер обмена
SELECT * FROM sites WHERE `id` = '13'
Как мне узнать порядковый номер, если бы я выбирал ее так:
Code (SQL): скопировать код в буфер обмена
SELECT * FROM sites ORDER BY `score` DESC
.
Если кто не понял, то этот запрос выдаст:
Code (any language): скопировать код в буфер обмена
+----+------+-------+
| id | name | score |
+----+------+-------+
|  5 | NAM5 | 41003 |
| 21 | NAM2 | 00321 |
|  1 | NAM1 | 00031 |
| 12 | NAM4 | 00005 |
| 13 | NAM3 | 00001 |
+----+------+-------+
то есть, порядковый номер (НЕ id!!!) записи под номером 13 будет равен 5,
Это в теории. Я не знаю, как это реализовать...
Помогите чем сможете, хоть теоретически
Back to top
View user's profile Send private message
Г.О.
Участник форума



Joined: 22 Feb 2006
Posts: 378
Карма: 13
   поощрить/наказать

Location: Ленинград

PostPosted: Wed Apr 05, 2006 4:44 pm (спустя 13 минут; написано за 55 секунд)
   Post subject:
Reply with quote

У записей в таблице нет порядковых номеров.
phpfaq.ru/mysql

А в вашем примере можно пройтись по всему массиву и найти элемент с id=13.
Back to top
View user's profile Send private message
Миша Спларов
Участник форума



Joined: 17 Nov 2003
Posts: 821
Карма: 65
   поощрить/наказать

Location: Россия, Москва

PostPosted: Thu Apr 06, 2006 7:27 am (спустя 14 часов 42 минуты; написано за 1 минуту 45 секунд)
   Post subject:
Reply with quote

Серж.Никитин
Если вы очень уверены, что вам нужно именно это, то:
1) Создайте ещё одну колонку в таблице. Например, position.
2) При каждом insert'е записи в эту таблицу (или не при каждом - не знаю как вам лучше) делайте SELECT c ORDER BY и потом UPDATE поля position.
Back to top
View user's profile Send private message
Johnny Woo
Guest





Карма: 388
   поощрить/наказать


PostPosted: Thu Apr 06, 2006 2:09 pm (спустя 6 часов 42 минуты; написано за 1 минуту 8 секунд)
   Post subject:
Reply with quote

Серж.Никитин
Если Вам надо одним запросом, то так:
Code (SQL): скопировать код в буфер обмена
SELECT t1.*, count(t2.id)+1 AS position
FROM test t1
        LEFT JOIN test t2 ON t2.score > t1.score
WHERE t1.id = 2
GROUP BY t1.id
Если можно двумя - просто считайте количество записей, у которых score меньше необходимого.
Back to top
Johnny Woo
Guest





Карма: 388
   поощрить/наказать


PostPosted: Thu Apr 06, 2006 2:13 pm (спустя 3 минуты; написано за 32 секунды)
   Post subject:
Reply with quote

Поправка: больше необходимого, конечно.
Back to top
ilich
Guest





Карма: 388
   поощрить/наказать


PostPosted: Thu Apr 20, 2006 3:16 pm (спустя 14 дней 1 час 2 минуты; написано за 51 секунду)
   Post subject:
Reply with quote

phpclub.ru/talk/showthread.php?s=&threadid=81648
Code (php): скопировать код в буфер обмена
echo (www.php.net/echo) get_page('sites', '', 13, 1, 'id')
Back to top
ilich
Guest





Карма: 388
   поощрить/наказать


PostPosted: Thu Apr 20, 2006 3:18 pm (спустя 1 минуту 44 секунды; написано за 20 секунд)
   Post subject:
Reply with quote

про сортировку забыл :(
Code (php): скопировать код в буфер обмена
echo (www.php.net/echo) get_page('sites', ' order by score desc', 13, 1, 'id')
Back to top
Display posts from previous:   
Post new topic   Reply to topic All times are GMT + 3 Hours
Page 1 of 1    Email to a Friend.
You cannot post new topics in this forum. You cannot reply to topics in this forum. You cannot edit your posts in this forum. You cannot delete your posts in this forum. You cannot vote in polls in this forum. You cannot attach files in this forum. You can download files in this forum.
XML